import { IPSAppCounterRef } from '../control/ipsapp-counter-ref';
import { IPSAppDataEntity } from '../dataentity/ipsapp-data-entity';
import { IPSModelObject } from '../../ipsmodel-object';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSAppDEViewBase
 */
export interface IPSAppDEViewBase extends IPSModelObject {
  /**
   * 功能视图模式
   * @description 值模式 [实体视图预置类型] {PICKUPVIEW：默认单选视图、 EDITVIEW：默认编辑视图、 MAINVIEW：默认主视图、 INDEXDEPICKUPVIEW：默认索引实体选择视图、 FORMPICKUPVIEW：默认多表单选择视图、 MPICKUPVIEW：默认多选视图、 MDATAVIEW：默认多项视图、 WFEDITVIEW：默认流程编辑视图、 WFMDATAVIEW：默认流程多项视图、 WFSTARTVIEW：默认流程启动视图、 WFACTIONVIEW：默认流程操作视图、 WFUTILACTIONVIEW：默认流程功能操作视图、 REDIRECTVIEW：默认数据重定向视图、 MOBPICKUPVIEW：移动端默认单选视图、 MOBEDITVIEW：移动端默认编辑视图、 MOBMAINVIEW：移动端默认主视图、 MOBINDEXDEPICKUPVIEW：移动端默认索引实体选择视图、 MOBFORMPICKUPVIEW：移动端默认多表单选择视图、 MOBMPICKUPVIEW：移动端默认多选视图、 MOBMDATAVIEW：移动端默认多项视图、 MOBWFEDITVIEW：移动端默认流程编辑视图、 MOBWFMDATAVIEW：移动端默认流程多项视图、 MOBWFSTARTVIEW：移动端默认流程启动视图、 MOBWFACTIONVIEW：移动端默认流程操作视图、 MOBWFUTILACTIONVIEW：移动端默认流程功能操作视图、 MOBREDIRECTVIEW：移动端默认数据重定向视图 }
   * @type {( string | 'PICKUPVIEW' | 'EDITVIEW' | 'MAINVIEW' | 'INDEXDEPICKUPVIEW' | 'FORMPICKUPVIEW' | 'MPICKUPVIEW' | 'MDATAVIEW' | 'WFEDITVIEW' | 'WFMDATAVIEW' | 'WFSTARTVIEW' | 'WFACTIONVIEW' | 'WFUTILACTIONVIEW' | 'REDIRECTVIEW' | 'MOBPICKUPVIEW' | 'MOBEDITVIEW' | 'MOBMAINVIEW' | 'MOBINDEXDEPICKUPVIEW' | 'MOBFORMPICKUPVIEW' | 'MOBMPICKUPVIEW' | 'MOBMDATAVIEW' | 'MOBWFEDITVIEW' | 'MOBWFMDATAVIEW' | 'MOBWFSTARTVIEW' | 'MOBWFACTIONVIEW' | 'MOBWFUTILACTIONVIEW' | 'MOBREDIRECTVIEW')}
   */
  funcViewMode:
    | string
    | 'PICKUPVIEW'
    | 'EDITVIEW'
    | 'MAINVIEW'
    | 'INDEXDEPICKUPVIEW'
    | 'FORMPICKUPVIEW'
    | 'MPICKUPVIEW'
    | 'MDATAVIEW'
    | 'WFEDITVIEW'
    | 'WFMDATAVIEW'
    | 'WFSTARTVIEW'
    | 'WFACTIONVIEW'
    | 'WFUTILACTIONVIEW'
    | 'REDIRECTVIEW'
    | 'MOBPICKUPVIEW'
    | 'MOBEDITVIEW'
    | 'MOBMAINVIEW'
    | 'MOBINDEXDEPICKUPVIEW'
    | 'MOBFORMPICKUPVIEW'
    | 'MOBMPICKUPVIEW'
    | 'MOBMDATAVIEW'
    | 'MOBWFEDITVIEW'
    | 'MOBWFMDATAVIEW'
    | 'MOBWFSTARTVIEW'
    | 'MOBWFACTIONVIEW'
    | 'MOBWFUTILACTIONVIEW'
    | 'MOBREDIRECTVIEW';

  /**
   * 功能视图参数
   * @type {string}
   */
  funcViewParam: string;

  /**
   * 应用计数器引用
   *
   * @type {IPSAppCounterRef}
   */
  getPSAppCounterRef(): IPSAppCounterRef | null;

  /**
   * 应用计数器引用
   *
   * @type {IPSAppCounterRef}
   */
  get psAppCounterRef(): IPSAppCounterRef | null;

  /**
   * 应用计数器引用（必须存在）
   *
   * @type {IPSAppCounterRef}
   */
  getPSAppCounterRefMust(): IPSAppCounterRef;

  /**
   * 实体视图代码名称
   * @type {string}
   */
  psDEViewCodeName: string;

  /**
   * 实体视图代码名称
   * @type {string}
   */
  getPSDEViewCodeName(): string;

  /**
   * 实体视图标识
   * @type {string}
   */
  psDEViewId: string;

  /**
   * 实体视图标识
   * @type {string}
   */
  getPSDEViewId(): string;

  /**
   * 父应用实体
   *
   * @type {IPSAppDataEntity}
   */
  getParentPSAppDataEntity(): IPSAppDataEntity | null;

  /**
   * 父应用实体
   *
   * @type {IPSAppDataEntity}
   */
  get parentPSAppDataEntity(): IPSAppDataEntity | null;

  /**
   * 父应用实体（必须存在）
   *
   * @type {IPSAppDataEntity}
   */
  getParentPSAppDataEntityMust(): IPSAppDataEntity;

  /**
   * 临时数据模式
   * @description 值模式 [平台部件处理器临时数据模式] {0：无临时数据模式、 1：主数据模式、 2：从数据模式 }
   * @type {( number | 0 | 1 | 2)}
   * @default 0
   */
  tempMode: number | 0 | 1 | 2;

  /**
   * 支持工作流
   * @type {boolean}
   */
  enableWF: boolean;
}
